/**
 * @Author: @guoxinglin
 * @Date: 2022-12-07 9:13:44
 * @LastEditTime: 2022-11-08 11:23:00
 * @LastEditors: Please set LastEditors
 * @Description: 
 **/

 let arrayJsUtil = {

    /**
     * 集合去重
     * @param {需要去重的集合} arr 
     * @param {判断两元素是否相同的函数} fun 
     * @returns 
     */
    distinctArry:function(arr,fun){
        let newArr = [];
        arr.forEach(item=>{
            if(this.isInArray(newArr,item,fun) == 0){
                newArr.push(item)
            }
        })
        return newArr;
    },

    /**
     * 判断对象是否在集合中
     * @param {集合} arr 
     * @param {传入对象} curItem 
     * @param {判断元素是否相等的的函数} fun 
     * @returns 
     */
    isInArray:function(arr,curItem,fun){
        let count = 0;
        arr.forEach(item => {
            let equa = fun(curItem,item);
            if(equa){
                count++
            }
        });
        return count;
    },

    /**
     * 过滤集合
     * @param {集合} arr 
     * @param {过滤规则} fun 
     */
    filterArray:function(arr,fun){
        return arr.filter(fun)
    }
    
}

export default arrayJsUtil